1. Field of the Invention
The present invention relates to computer systems and more specifically to computer busses.
2. Description of the Related Art
Computer systems are information handling systems which can be designed to give independent computing power to one user or a plurality of users. Computer systems may be found in many forms including, for example, mainframes, minicomputers, workstations, servers, personal computers, internet terminals, portables, and embedded systems. Personal computer (PC) systems, such as the International Business Machines (IBM) compatible PC systems, include desk top, floor standing, or portable versions. A typical PC system includes a system processor, associated memory and control logic, and a number of peripheral devices that provide input and output for the system. Such peripheral devices often include display monitors, keyboards, mouse-type input devices, floppy and hard disk drives, CD-ROM drives, and printers. The number of devices being added to computer systems continues to grow. For example, many computer systems also include network capability, terminal devices, modems, televisions, sound devices, voice recognition devices, electronic pen devices, and mass storage devices such as tape drives, CD-R drives, or DVDs.
Typically, the system processor is operably coupled to a number of peripheral devices via a computer bus or busses. One computer bus standard is the Peripheral Component Interconnect (PCI) standard as set forth in the PCI, Rev. 2.1s Specification, Jun. 1, 1995, (copyright)1995 PCI Special Interest Group, which is hereby incorporated by reference. Other types of computer bus standards include the Industry Standard Architecture (ISA), Enhanced ISA (EISA), Micro Channel, Personal Computer Memory Card Industry Association (PCMCIA), Universal Serial Bus (USB), and Small Computer System Interface (SCSI).
With some computer bus standards, each device on the bus has a unique address that allows the device to be addressed by other devices on the bus. In debugging a computer system, it is sometimes necessary to place a new device on a bus to perform particular functions such as the functions of a malfunctioning device to determine whether the device is malfunctioning. Since the new device typically has the same bus address as the old device, bus accesses to the old device must be redirected to the new device. Where the malfunctioning device is a slotted device, the old device is removed and the new device is inserted in its slot. However, if the old device is embedded on the mother board of the computer system, removal of the old device is not practical for most debugging purposes.
What is needed is a system for redirecting bus accesses from an old device to a newly installed device without removing the old device from the computer system.
It has been discovered that providing a computer system with a filter circuit that filters bus accesses advantageously enables the redirection of bus accesses to other devices on a computer bus for such purposes as for testing or debugging a computer system.
In one aspect of the invention, a computer system includes a system processor and a computer bus. The system processor is operably coupled to the computer bus. The computer system also includes a filter circuit coupled to the computer bus. The filter circuit controls bus accesses to a group of at least one device operably coupled to the computer bus. The filter circuit operates in a filter mode and a non filter mode. In the non filter mode, the filter circuit allows bus accesses from the computer bus to pass to the group. In the filter mode, the filter circuit blocks bus accesses from the computer bus from passing to the group. In response to determining that a bus access is an allowable bus access, the filter circuit signals a device that initiated the allowable bus access to reinitiate the allowable bus access wherein the filter circuit allows the reinitiated allowable bus access to pass to the group.
In another aspect of the invention, a method of filtering bus accesses from a computer bus includes transiting to a filter mode from a non filter mode in response to receiving a filter mode transit indication. When in the non filter mode, placing the switch circuit in a conductive switch state to enable a group of at least one device coupled to a computer bus to receive accesses from the computer bus. When in the filter mode, placing the switch circuit in a non conductive switch state to block accesses from passing to the group, sensing a bus access on the computer bus, and determining whether the bus access is an allowable access. If the bus access is determined to be an allowable access, signaling a device to re-initiate the allowable access and placing the switch circuit in a conductive switch state to enable the group to receive the allowable access.
In another aspect of the invention, a computer system includes a system processor and a computer bus conforming to a standard based upon a Peripheral Component Interconnect (PCI) specification. The system processor is operably coupled to the computer bus. The computer system also includes a filter circuit coupled to the computer bus. The filter circuit controls bus transactions from the computer bus to a group of at least one device operably coupled to the computer bus. The filter circuit operates in a filter mode and a non filter mode. In the non filter mode, the filter circuit allows bus transactions from the computer bus to pass to the group. In the filter mode, the filter circuit blocks bus transactions from the computer bus from passing to the group. In response to determining that a bus transaction is an allowable bus transaction, the filter circuit initiates a target initiated request on the computer bus wherein the filter circuit allows a reinitiated allowable bus transaction to pass to the group.
In other aspect, the invention includes a filter circuit for controlling bus accesses from a computer bus to a group of at least one device operably coupled to the computer bus. The filter circuit includes a switch circuit and a control circuit. The filter circuit operates in a filter mode and a non filter mode. In a non filter mode, the control circuit places the switch circuit a conductive switch state to allow accesses from the computer bus to pass to the group. In a filter mode, the control circuit places the switch circuit in a non conductive switch state to block accesses from the computer bus from passing to the group. In response to determining that an access is directed towards an allowable device of the group, the control circuit signals to a device that initiated the allowable access to reinitiate the allowable access wherein the control circuit places the switch circuit in a conductive switch state to allow the reinitiated access to pass to the group.
In another aspect of the invention, a method for booting up a computer system from an auxiliary memory device includes inserting an auxiliary boot up memory device circuit into a computer bus connector and activating a filter circuit coupled to the computer bus. The filter circuit controls accesses to a group of devices that includes a system boot-up memory device. In response to activation, the filter circuit blocks accesses from the computer bus to the group. The method further includes monitoring the computer bus by the filter circuit to detect an access directed towards a device of the group but not directed to the system boot-up memory device. In response to detecting an access on the computer bus directed toward a device of the group but not directed to the system boot-up memory device, signaling a device that initiated the access to reinitiate the access.
One advantage of the present invention is that it allows a user to plug in a device having the same bus address as another device on the system and to redirect bus accesses directed towards the old device to the new device without physically removing the old device from the computer system. Another advantage of the present invention is that it allows one to manually disable particular features of a device without disabling all of the features of the device. Another advantage is that a particular device may be operably decoupled from the system while other devices located on the same computer bus remain operably coupled to the system.